package com.cy.pj.sys.web.controller;


import com.cy.pj.common.pojo.JsonResult;
import com.cy.pj.sys.pojo.SysMenu;
import com.cy.pj.sys.service.SysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 创建SysMenuController类型，通过此对象处理客户端请求
 * 1.处理什么请求？
 * 1)Get  2)Post  3)put  4)delete
 * 2.响应什么数据？
 * JsonResult
 * 3.异常数据如何处理
 * @RestControllerAdvice 处理异常
 */
@RequestMapping("/menu/")
@RestController
public class SysMenuController {

    @Autowired
    private SysMenuService sysMenuService;

    @PutMapping
    public JsonResult doUpdateMenu(@RequestBody SysMenu menu){
        sysMenuService.updateMenu(menu);
        return new JsonResult("Update Ok");
    }

    @GetMapping("{id}")
    public JsonResult doFindById(@PathVariable Integer id){
        return new JsonResult(sysMenuService.findById(id));
    }

    @PostMapping
    public JsonResult doSaveMenu(@RequestBody SysMenu menu){
        sysMenuService.saveMenu(menu);
        return new JsonResult("Save OK");
    }

    @GetMapping("treeNodes")
    public JsonResult doFindMenuTreeNodes(){
        return new JsonResult(
                sysMenuService.findMenuTreeNodes());
    }

    @GetMapping
    public JsonResult doFindMenus(){
        return new JsonResult(sysMenuService.findMenus());
    }

    /**
     * 拓展模块：
     * 1.组织管理(部门管理)
     * 2.商品分类(一级分类，二级分类，...)
     * 3.文章分类(小说->武侠->...)
     */

}
